【コマンドライン】データの送受信 [ curl ]

【コマンドライン】データの送受信 [ curl ]

コマンドラインでデータを送受信するcurlコマンドについて解説します。

検証環境

curlコマンド

curlコマンドは“データを送受信するコマンド”です。

様々な通信プロトコルが備わっており、代表的な通信はHTTPなどです。

リクエストを送信し、そのレスポンスを受信することでWebページなどのデータを取得できます。

基本書式

$ curl [オプション] [URL]

オプション

主なオプションは次の通りです。

オプション 内容
-o ファイル名 レスポンスをファイルに出力
-v 詳細ログの出力
-I レスポンスヘッダを出力
-X POST POSTリクエストを送信
-d データ データを送信
-H リクエストヘッダを追加

引数

URL

URLはデータを送信するURLです。

サンプル

GETリクエスト

指定URLにGETリクエストを送信し、そのレスポンスを表示します。

___ih_hl_start
$ curl https://it-hack.net
___ih_hl_end
...省略...
<title>ITHACK ~ みんなのIT部門 ~ | ITHACK</title>
...省略...

POSTリクエスト

___ih_hl_start
$ curl -X POST https://it-hack.net
___ih_hl_end
...省略...
An Error Occurred: Method Not Allowed
...省略...

POSTリクエスト(データ付与)

___ih_hl_start
$ curl -X POST -d "A=aaa&X=xxx" https://it-hack.net
___ih_hl_end
...省略...
An Error Occurred: Method Not Allowed
...省略...

リクエストヘッダ

___ih_hl_start
$ curl -H "Content-Type: application/json" https://it-hack.net
___ih_hl_end
...省略...
<title>ITHACK ~ みんなのIT部門 ~ | ITHACK</title>
...省略...

レスポンスヘッダ

___ih_hl_start
$ curl -I https://it-hack.net
___ih_hl_end
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
...省略...

詳細ログ

___ih_hl_start
$ curl -v https://it-hack.net
___ih_hl_end
* About to connect() to it-hack.net port 443 (#0)
...省略...
> GET / HTTP/1.1
...省略...
< HTTP/1.1 200 OK
...省略...

ファイル保存

-oオプションはレスポンスをファイルに保存します。

___ih_hl_start
$ curl -o sample.html https://it-hack.net
___ih_hl_end
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 78481    0 78481    0     0  43998      0 --:--:--  0:00:01 --:--:-- 43991
$ ls
sample.html
$cat sample.html
...省略...
<title>ITHACK ~ みんなのIT部門 ~ | ITHACK</title>
...省略...

マニュアル

コマンドの仕様(主な処理やオプション・引数など)は環境により異なる場合がございます。

利用環境での仕様は『コマンドのマニュアルを表示する』manコマンド等で確認しましょう。